@echo off

set version=%1

rem 记录当前chcp
for /f "tokens=1,2,* delims=:" %%i in ('chcp') do call :SetChcp %%j
goto :eof
:SetChcp
SET currentChcp=%1
chcp 65001 > NUL

:CheckVersion
if "%version%"=="" ( 
    echo 支持的版本（退出请输入0）
    echo 8
    echo 11
    echo 17
    echo 21
    echo +（最新版）
    
  	set /p version=请输入JAVA版本：
)

if "%version%"=="0" (
    goto :eof
)

if "%version%"=="" (
    goto :CheckVersion
)

REM echo 4

:SetEnv
REM 需要改变当前终端（命令行）的java_home，便于后续其他工具使用java_home找到对应的版本（例如gradle,maven）
REM setlocal
if "%version%"=="8" (
    set java_home=%java8_home%
) else if "%version%"=="11" (
    set java_home=%java11_home%
) else if "%version%"=="17" (
    set java_home=%java17_home%
) else if "%version%"=="21" (
    set java_home=%java21_home%
) else if "%version%"=="+" (
    set java_home=%java_last_home%
) else (
    echo 不支持的版本（%version%）
    set version=
    goto :CheckVersion
)

rem 恢复当前chcp
chcp %currentChcp% > NUL

set path=%java_home%\bin;%path%
java -version
REM endlocal
:eof